﻿using System.Collections.Generic;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessLogic
{
    /// <summary>
    /// Lógica de negócios para tipo de beneficio de politica de corretagem
    /// </summary>
    public class TipoBeneficio : BaseBusinessLogic
    {
        #region Atributos

        private int _erroObjetoNulo = 109545;
        ResourceAccess.TipoBeneficio _raTipoBeneficio = null;

        #endregion

        #region Construtor

        /// <summary>
        /// Cosntrutor TipoBeneficio
        /// </summary>
        public TipoBeneficio()
            : base()
        {
            this._raTipoBeneficio = new ResourceAccess.TipoBeneficio();
        }

        #endregion

        #region Propriedades

        /// <summary>
        /// Objeto Nulo
        /// </summary>
        public int ErroObjetoNulo
        {
            get
            {
                return _erroObjetoNulo;
            }
            set
            {
                _erroObjetoNulo = value;
            }
        }

        #endregion

        #region Métodos
        /// <summary>
        /// Consulta lista de tipos de beneficios de politica de corretagem conforme
        /// filtro
        /// </summary>
        /// <param name="entity"></param>
        public List<BusinessEntity.TipoBeneficio> ConsultarTiposBeneficios(BusinessEntity.Parameter.FiltroTipoBeneficio entity)
        {
            if (entity != null)
            {
                return this._raTipoBeneficio.ConsultarTiposBeneficios(entity);
            }
            else
            {
                throw new BusinessException(ErroObjetoNulo);
            }
        }

        #endregion
    }
}